package com.hualan.servlet;

import com.alibaba.fastjson.JSON;
import com.hualan.bean.PanghuShop;
import com.hualan.dao.StoreDao;
import com.hualan.dao.impl.StoreDaoImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;

@WebServlet("/store/list")
public class StoreListServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.获取前端传递的分页信息 page和size
        String pageString = req.getParameter("pageNum");
        int page = pageString == null ? 1:Integer.parseInt(pageString);
        String sizeString = req.getParameter("pageSize");
        int size = sizeString == null ? 10 : Integer.parseInt(sizeString);
        String communityName = req.getParameter("shopName");// 获取门店名称

        // 把查询条件封装成Map集合【实体类中没有开始时间和结束时间字段】
        //2.创建Map对象 用来给前端返回信息
        HashMap<String,Object> map = new HashMap<>();
        //3.查询数据总条数 --- 增删查改来自Dao
        StoreDao storeDao = new StoreDaoImpl();
        long count = storeDao.selectAll();
        //将数量存储到map中
        map.put("total",count);
        //4.按照分页查询数据
        List<PanghuShop> shopList = storeDao.selectByPage(page,size);
        //将数据以键值对形式存储在map里
        map.put("list",shopList);
        //5.设置code状态码 200成功 300失败； 以及message信息
        if (count > 0 && shopList != null) {
            map.put("code", 200);
            map.put("message", "请求成功！");
        } else {
            map.put("code", 300);
            map.put("message", "获取数据失败！");
        }
        //6.将数据源map 通过response返回给前端
        //问题
        //.json是文件存储数据的一种格式 参考 .txt .word .pang .html等 仅仅是一种文件格式  但是其内部遵循键值对{}和数组[]结构;所以我们在进行网络数据输出都会使用此格式的数据进行传递!!!
        //设置响应对象response 可以回应中文 给前端传递中文数据!!
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        String jsonString = JSON.toJSONString(map);
        resp.getWriter().write(jsonString);
    }
}
